package com.yt.lxh.search.config;

import com.yt.lxh.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 产品售卖状态更新的通知配置
 */
@Slf4j
@Configuration
public class SaleNotifyConfig {
    // 声明交换机，且持久化
    @Bean(MQConst.GOODS_DIRECT_EXCHANGE)
    public DirectExchange productSaleStatusUpdateExchange() {
        // 3个参数：交换机名称，是否持久化，没有队列绑定是否自动删除
        return new DirectExchange(MQConst.GOODS_DIRECT_EXCHANGE, true, false);
    }

    // 产品销售状态上架队列，且持久化
    @Bean(MQConst.GOODS_UPPER_QUEUE)
    public Queue goodsUpperQueue() {
        return QueueBuilder.durable(MQConst.GOODS_UPPER_QUEUE).build();
    }

    // 产品销售状态下架队列，且持久化
    @Bean(MQConst.GOODS_LOWER_QUEUE)
    public Queue goodsLowerQueue() {
        return QueueBuilder.durable(MQConst.GOODS_LOWER_QUEUE).build();
    }

}
